//给出两幅相同大小的黑白图像（用0-1矩阵）表示，求它们的相似度。若两幅图像在相同位置上的像素点颜色相同，则称它们在该位置具有相同的像素点。两幅图像的相似度定义为相同像素点数占总像素点数的百分比。
#include <stdio.h>

int main() {
    int m, n;
    scanf("%d %d", &m, &n);
    int arr1[m][n];
    int arr2[m][n];
    float sim=0;    //相似度
    for(int i=0;i<m;i++)
    {
        for(int j=0;j<n;j++)
        {
            scanf("%d", &arr1[i][j]);
        }
    }
    for(int i=0;i<m;i++)
    {
        for(int j=0;j<n;j++)
        {
            scanf("%d", &arr2[i][j]);
            if (arr1[i][j]==arr2[i][j]) {
                sim++;
            }
        }
    }
    printf("%.2f\n", sim/(m*n)*100);
    return 0;
}


//KiKi想知道一个n阶方矩是否为上三角矩阵，请帮他编程判定。上三角矩阵即主对角线以下的元素都为0的矩阵，主对角线为从矩阵的左上角至右下角的连线。
#include <stdio.h>

int main() {
    int n=0;
    scanf("%d", &n);
    int arr[n][n];
    int no_zero=0;  //记录数组不为0的数
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            scanf("%d", &arr[i][j]);
        }
    }
    for(int i=1;i<n;i++)
    {
        for(int j=0;j<i;j++)
        {
            if (arr[i][j]!=0) {
                no_zero++;
            }
        }
    }
    if (no_zero!=0) {
        printf("NO\n");
    }
    else {
        printf("YES\n");
    }
    return 0;
}


//KiKi现在得到一个包含n*m个数的整数序列，现在他需要把这n*m个数按顺序规划成一个n行m列的矩阵并输出，请你帮他完成这个任务。
#include <stdio.h>

int main() {
    int n, m;   //行和列
    scanf("%d %d", &n, &m);
    int arr1[n*m];
    int j=0;    //记录换行的位置
    for(int i=0;i<m*n;i++)
    {
        scanf("%d", &arr1[i]);
        printf("%d ", arr1[i]);
        if (i==(j+1)*m) {
            j++;
        }
        if (i==((j+1)*m-1)) {
            printf("\n");
        }
    }
    return 0;
}


//KiKi有一个矩阵，他想知道转置后的矩阵（将矩阵的行列互换得到的新矩阵称为转置矩阵），请编程帮他解答。
#include <stdio.h>

int main() {
    int n, m;
    scanf("%d %d", &n, &m);
    int arr[n][m];
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            scanf("%d", &arr[i][j]);
        }
    }

    for(int i=0;i<m;i++)
    {
        for(int j=0;j<n;j++)
        {
            printf("%d ", arr[j][i]);
        }
        printf("\n");
    }
    return 0;
}
